Conventional media platforms (e.g., MICROSOFT® Media Foundation) support common media types/formats in an operating system. These media platforms implement a pipeline between a media file and an output device, which includes various components for reading, decoding and/or presenting the media file to the output device. Software applications may employ these media platforms to simplify media integration (i.e., video playback) and streamline video/audio rendering. The software applications may also use the media platforms to capture video/audio data, which is encoded and stored in a storage system.
The media platform pipeline may also provide video content services, such as software video/graphics processing and software video/graphics decoding. Most media platforms, however, cannot support hardware accelerated graphics processing and/or decoding because of various reasons. For instance, a lack of compatibility between these media platforms and recent web development platforms (e.g., HTML5) makes developing web applications with hardware accelerated graphics impractical. In addition, a graphics processing unit (GPU) may not support hardware accelerated capabilities. Without the ability to use the GPU to offload certain graphics operations, the web applications often render video content and/or graphics very slowly and irregularly.
With respect to the media platforms that provide some hardware graphics rendering capabilities, a desirable level of user experience quality and/or rendering performance may not be achieved. Furthermore, the hardware accelerated graphics rendering capabilities may not support certain file types (i.e., media formats). Extension models for the media platforms are designed for custom codecs and proprietary media streams and not for arbitrary hardware accelerated graphics rendering. Even if a file type is supported, the media platform does not permit user interaction with the rendered graphics. This is especially true for hardware accelerated three-dimensional (3D) video/graphics rendering inside web applications, such as HTML5 documents. Because of all these reasons, developing web applications with rendered hardware accelerated graphics is cumbersome to accomplish.